using System;
using WiMo.Games.Premium.GDIDisplay.ImageAPI;
using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
using WiMo.Games.Premium.GDIDisplay.DirectDraw;

namespace WiMo.Games.Premium.GDIDisplay
{
    internal interface IWiMoGraphics
    {
        void Reset();
        void Clear();
        void Clear(Color color);
        void DrawImage(Image image, int x, int y);
        void DrawImage(Image image, Location location);
        void DrawImage(Image image, Location location, Color colorKey);
        void DrawImage(Image image, Rectangle dst, Rectangle src, Color colorKey);
        void DrawImage(Image image, Rectangle dst, Rectangle src);
        void DrawImage(IImage image, Rectangle dest, Rectangle src);
        void FillRectangle(Color color, int x, int y, int width, int height);
        void FillRectangle(Color color, Rectangle rect);
        void DrawRectangle(Color borderColor, Color fillColor, Rectangle rect, byte alpha);
        void FillEllipse(Color color, Location point, Size size);
        void DrawEllipse(Color color, int width, Location point, Size size);
        void DrawLine(Color color, int width, Location start, Location end);
        void DrawLines(Color color, int width, Point[] points);
        void FillPolygon(Color color, Point[] points);
        Size MeasureString(string text, Font font);
        void RenderBackbuffer(IntPtr hwnd);
        string Name { get; }
        void DrawImage(Drawables.WiMoImage image, Location point);
        void DrawImage(Drawables.WiMoImage image, Location point, Rectangle dest);
    }
}
